1 TADPOLE and RPART

RPART Analysis

1.1 Loading the libraries

library("FRESA.CAD")
library(readxl)
library(igraph)
pander::panderOptions('digits', 3)
pander::panderOptions('table.split.table', 400)
pander::panderOptions('keep.trailing.zeros',TRUE)

1.2 Loading BSWiMS Results

opo <- par(no.readonly = TRUE)

load("~/GitHub/BSWiMS/TADPOLE_BSWIMS_Results.RData")
op <- opo

2 Predicting ADAS13

Here we will diagnose ADAS13

2.1 Learning ADAS13

RPARTml <- rpart::rpart(ADAS13~.,TADPOLECrossMRITrain)

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITest$ADAS13,predict(RPARTml,TADPOLECrossMRITest)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.615 0.567 0.659
  • biasci: -0.419, -0.990 and 0.153

  • RMSEci: 7.74, 7.35 and 8.16

  • spearmanci:

    50% 2.5% 97.5%
    0.578 0.522 0.63
  • MAEci:

    50% 2.5% 97.5%
    6.01 5.66 6.37
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    20.7 702 1.49e-74 * * * two.sided 0.615
par(op)

2.2 Decorrelated

RPARTmlD <- rpart::rpart(ADAS13~.,TADPOLECrossMRITrainD)

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITestD$ADAS13,predict(RPARTmlD,TADPOLECrossMRITestD)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.536 0.481 0.587
  • biasci: -0.5991, -1.2189 and 0.0206

  • RMSEci: 8.40, 7.98 and 8.86

  • spearmanci:

    50% 2.5% 97.5%
    0.565 0.507 0.614
  • MAEci:

    50% 2.5% 97.5%
    6.33 5.94 6.74
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    16.8 702 1.4e-53 * * * two.sided 0.536
par(op)

3 Diagnosis MCI vs AD

3.1 Learning

TADPOLE_DX_TRAIN$DX <- as.factor(TADPOLE_DX_TRAIN$DX)

RPARTDXml <- rpart::rpart(DX~.,TADPOLE_DX_TRAIN)

prBin <- predictionStats_binary(cbind(TADPOLE_DX_TEST$DX,predict(RPARTDXml,TADPOLE_DX_TEST)[,2]),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.699 0.644 0.754
pander::pander(prBin$accc)
est lower upper
0.702 0.654 0.748
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.408 0.354 0.461
pander::pander(prBin$sensitivity)
est lower upper
0.367 0.272 0.471
par(op)

3.1.1 Decorrelated ML

TADPOLE_DX_TRAIND$DX <- as.factor(TADPOLE_DX_TRAIND$DX)

RPARTDXmlD <- rpart::rpart(DX~.,TADPOLE_DX_TRAIND)


prBin <- predictionStats_binary(cbind(TADPOLE_DX_TESTD$DX,predict(RPARTDXmlD,TADPOLE_DX_TESTD)[,2]),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.685 0.623 0.748
pander::pander(prBin$accc)
est lower upper
0.728 0.681 0.772
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.38 0.329 0.434
pander::pander(prBin$sensitivity)
est lower upper
0.398 0.3 0.502
par(op)

4 Diagnosis NL vs AD

4.1 Learning

TADPOLE_DX_NLDE_TRAIN$DX <- as.factor(TADPOLE_DX_NLDE_TRAIN$DX)
RPARTDXmlNLDE <- rpart::rpart(DX~.,TADPOLE_DX_NLDE_TRAIN)

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TEST$DX,predict(RPARTDXmlNLDE,TADPOLE_DX_NLDE_TEST)[,2]),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.838 0.789 0.887
pander::pander(prBin$accc)
est lower upper
0.835 0.786 0.877
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.205 0.154 0.254
pander::pander(prBin$sensitivity)
est lower upper
0.663 0.561 0.756
par(op)

4.2 Decorrelated Set

4.2.1 Learning

TADPOLE_DX_NLDE_TRAIND$DX <- as.factor(TADPOLE_DX_NLDE_TRAIND$DX)

RPARTDXmlNLDED <- rpart::rpart(DX~.,TADPOLE_DX_NLDE_TRAIND)

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TESTD$DX,predict(RPARTDXmlNLDED,TADPOLE_DX_NLDE_TESTD)[,2]),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.848 0.8 0.895
pander::pander(prBin$accc)
est lower upper
0.842 0.794 0.883
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.18 0.131 0.229
pander::pander(prBin$sensitivity)
est lower upper
0.745 0.647 0.828
par(op)

5 Prognosis MCI to AD Conversion

5.1 Learning



bConvml <- rpart::rpart(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIN)

ptestr <- predict(bConvml,TADPOLE_Conv_TEST)
ptestl <- log(ptestr)
boxplot(ptestl~TADPOLE_Conv_TEST$status)

boxplot(ptestr~TADPOLE_Conv_TEST$status)




perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)

if (max(ptestl)>0 && min(ptestl)<0 )
{
  prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")
  pander::pander(prSurv$CIRisk)
  pander::pander(prSurv$CILp)
  pander::pander(prSurv$spearmanCI)
}

5.2

50% 2.5% 97.5%
0.269 0.0864 0.452

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.736 0.675 0.797
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 66 60 126
Test - 32 115 147
Total 98 175 273

par(op)

5.3 Decorrelated

5.3.1 Learning



bConvmlD <- rpart::rpart(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIND)

ptestr <- predict(bConvmlD,TADPOLE_Conv_TESTD)
ptestl <- log(ptestr)
boxplot(ptestl~TADPOLE_Conv_TEST$status)

boxplot(ptestr~TADPOLE_Conv_TEST$status)


perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)


if (max(ptestl)>0 && min(ptestl)<0 )
{
  prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")
  pander::pander(prSurv$CIRisk)
  pander::pander(prSurv$CILp)
  pander::pander(prSurv$spearmanCI)
}

5.4

50% 2.5% 97.5%
0.257 0.0579 0.437

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TESTD$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.711 0.648 0.774
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 82 77 159
Test - 16 98 114
Total 98 175 273

par(op)

5.4.1 The End

.